package com.quanyan.stadium.utils.demo.view;

/**
 * Created by xiaoxiao on 17/2/6.
 *
 * 双重锁定模式
 *
 * 优点:懒汉模式的一种改进
 *
 * 缺点: 旧版本存在无序写入的问题. 对于volatile变量_instance，所有的写（write）都将先行发生于读（read），在Java 5之前不是这样，
 */
public class Singleton5 {

    //保证主存写入的可见性
    private volatile static Singleton5 singleton;

    private Singleton5 (){}

    public static Singleton5 getInstance() {
        if (singleton == null) {
            synchronized (Singleton5.class) {
                if (singleton == null) {
                    singleton = new Singleton5();
                }
            }
        }
        return singleton;
    }

}
